﻿#define _CRT_SECURE_NO_WARNINGS
#include"Binary_Search.h"

//key / value搜索场景：
//每⼀个关键码key，都有与之对应的值value，value可以任意类型对象。树的结构中(结点)除了需要存
//储key还要存储对应的value，增 / 删 / 查还是以key为关键字⾛⼆叉搜索树的规则进⾏⽐较，可以快速查
//找到key对应的value。key / value的搜索场景实现的⼆叉树搜索树⽀持修改，但是不⽀持修改key，修
//改key破坏搜索树结构了，可以修改value。
//场景1：简单中英互译字典，树的结构中(结点)存储key(英⽂)和vlaue(中⽂)，搜索时输⼊英⽂，则同时
//查找到了英⽂对应的中⽂。
//场景2：商场⽆⼈值守⻋库，⼊⼝进场时扫描⻋牌，记录⻋牌和⼊场时间，出⼝离场时，扫描⻋牌，查
//找⼊场时间，⽤当前时间 - ⼊场时间计算出停⻋时⻓，计算出停⻋费⽤，缴费后抬杆，⻋辆离场。
//场景3：统计⼀篇⽂章中单词出现的次数，读取⼀个单词，查找单词是否存在，不存在这个说明第⼀次
//出现，（单词，1），单词存在则++单词对应的次数
void test() {
	BSTree<string,string> t;
	t.Insert("dog", "狗");
	t.Insert("cat", "猫");
	t.Insert("cow", "奶牛");
	t.Insert("bee", "蜜蜂");
	t.Insert("sheep", "羊");

	BSTNode<string,string> *tmp;
	string animal;
	while (cin >> animal) {
		tmp=t.Find(animal);
		cout << tmp->_value << endl;
	}
}
int main() {
	test();

	return 0;
}